对象:任务
符号:
您在对象中配置任务。您可以配置优先级、具有时间行为的类型和监视程序。你也可以添加 PROGRAM
呼叫。
该对象位于设备树下方的设备树中 任务配置。
选项卡:配置
对象: 任务
优先级 | 可能的值:0.. 31,其中 0 是最高优先级 |
任务组 | 已分配 任务组 可以分配给多核中的特定处理器内核 示例: IEC 任务 注意:任务组显示在设备树中任务后的方括号中。 |
重要
在 Linux 中使用运行时系统时,任务组和优先级之间存在固定的依赖关系。有关更多信息,请参阅: Linux 系统上的任务优先级映射
类型
类型: | 任务的处理是循环完成的。 |
输入字段: 间隔 | 必填项 任务重启的时间跨度(任务周期时间)
注意:任务与所需任务周期时间的偏差在运行时以周期性抖动的形式显示在 选项卡:监控 选项卡。 |
间隔的时间单位 | 如果在中仅指定了数字而不是时间定义 间隔 输入字段,则此处选择的单位决定时间维度。 示例: ms 注意:以 µs 为单位的任务周期时间始终显示为数字。 |
类型: | 任务的处理在事件变量的上升沿开始以事件触发。 |
输入字段: 事件 | 全局变量(布尔类型) 变量值从 0 切换到 1 后,任务立即启动。 |
类型: | 任务的处理在事件变量的上升沿开始以事件触发。 |
清单框: 事件 | 包含目标系统相关事件的列表(布尔类型) 注意:目标系统决定列表框中支持和提供哪些事件。 提示:不要与系统事件混淆 |
间隔 | 中的时间定义 注意:仅在事件需要时间定义时可用 |
类型 自由运行 | 任务的处理在程序启动时以及运行结束后,在一定等待时间后自动以连续循环方式重新启动 重要:完成运行后,需要等待一定的时间才能再次执行任务。持续时间是最后一个周期持续时间的百分比。 注意:您未定义循环时间。 |
类型 地位 | 任务的处理开始时由事件变量触发 |
输入字段: 事件 | 全局变量(布尔类型) 当变量具有状态 注意:变量通常在任务本身中重置。与事件任务不同,这种方式不会错过任何事件。当事件发生时,调度程序必须保存一个旧值,并且该值更改的频率可能比检查的频率更高。因此,如果事件变量更改为 |
重要
对于现场总线,固定周期矩阵是确保确定行为所必需的。因此,您不应该使用 类型 随心所欲 用于总线循环任务。
重要
请注意处理类型之间的以下区别 状态 和 事件: 如果给定事件产生 TRUE
,然后是类型为的任务的启动条件 状态 已完成。相比之下,类型为任务的开始 事件 需要从以下位置切换事件 FALSE
到 TRUE
。如果任务调度器的采样率太低,则事件的上升趋势可能不会被注意到
重要
设置任务周期时间时,需要确定当前正在使用哪个总线系统。例如,CAN 总线系统中的任务周期必须与当前设置的波特率和总线中使用的帧数相匹配。此外,为心跳、节点保护和同步设置的时间应始终是任务周期时间的倍数。否则,CAN 帧可能会丢失。
有关更多信息,请参阅: 选项卡:监控
看门狗
定义任务的时间监控。如果目标系统支持高级监视程序配置,则可以在设备描述中预定义以下设置
默认监视程序设置取决于设备。 | |
启用 |
如果任务超过了监视程序当前设定的时间,则任务将暂停并显示错误状态(异常)。任务中出现错误的应用程序及其子应用程序也已暂停。这样,受影响应用程序的所有任务也将暂停。然后是当前定义的 灵敏度 也被考虑在内。 如果你激活该选项 更新 I/O 在 PLC 设置 那么 PLC 的 CODESYS 将输出重置为定义的默认值。 . 可能的情况:
|
时间(例如 t #200ms) | 看门狗时间 定义(和 灵敏度) 任务的监视器;相应的描述 启用。 视目标系统而定,如果可能,监视时间跨度以任务间隔的百分比表示。在这种情况下,该设备的列表框被禁用并显示 %。 |
灵敏度 | 数字 定义(与监视器一起)任务的监视程序;描述为 启用。 |
提示
使用库中的函数 CmpIecTask.library
,您可以针对特定 PLC 周期停用监视器。这对于因初始化而需要更多时间的周期很有用。
停用/重新激活监视程序:
VAR hIecTask : RTS_IEC_HANDLE; END_VAR hIecTask := IecTaskGetCurrent(0); IecTaskDisableWatchdog(hIecTask); //Watchdog disabled ... IecTaskEnableWatchdog(hIecTask); //Watchdog enabled
看门狗在初始化之前被停用 IecTaskDisableWatchDog
循环的其余部分,并在下一个循环中自动重新激活。
看门狗可以在初始化后重新激活 IecTaskEnableWatchDog
.然后看门狗已经在周期的剩余时间内重新激活(看门狗时间窗口再次从头开始)。
功能块的初始化发生在 FB_Init
方法不受此影响。但是由于通信超时,有 < 30 秒的限制。自 V3.5 SP18 起不再存在此时间限制,因为在线服务是异步执行的。
提示
当 IEC 任务的执行时间超过监视程序时间时,将触发 IEC 任务的正常监视程序。
当任务根本没有启动时,就会触发 “省略周期” 监视程序。当任务在 < 的最大值内根本不执行任何循环时,就会出现这种情况时间 * 灵敏度> 或 <2 * 间隔>。原因可能是其他任务挤满了人,或者调度程序出现故障,无法再启用
程序调用
POU (POU 带有类型的对象 POU 的调用顺序对应于此处自上而下配置的呼叫顺序。 | |
| 打开输入助手。选择一个 |
| 移除通话 |
| 打开所选呼叫的输入助手。选择另一个 |
| 在列表中向上或向下移动呼叫的位置。调用顺序在运行时会相应更改。 |
| 打开 POU 编辑器,其中包含声明和实现 |